#pragma once

#ifdef __cplusplus
extern "C" {
#endif

typedef enum {
  /* 0x0000 – 0x00FF (ISOSAEReserved) */

  /* 0x0100 – 0xA5FF (VMS) Vehicle Manufacturer Specific */

  /* 0xA600 – 0xA7FF (RFLU) Reserved For Legislative Use */

  /* 0xA800 – 0xACFF (VMS) Vehicle Manufacturer Specific */

  /* 0xAD00 – 0xAFFF (RFLU) Reserved For Legislative Use */

  /* 0xB000 – 0xB1FF (VMS) Vehicle Manufacturer Specific */

  /* 0xB200 – 0xBFFF (RFLU) Reserved For Legislative Use */

  /* 0xC000 – 0xC2FF (VMS) Vehicle Manufacturer Specific */

  /* 0xC300 – 0xCEFF (RFLU) Reserved For Legislative Use */
  
  /* 0xCF00 – 0xEFFF (VMS) Vehicle Manufacturer Specific */

  /* 0xF000 – 0xF00F (NCDFTTADID) Network Configuration Data For Tractor Trailer Application Data-Identifier */
  UDS_DID_NCDFTTADID = 0xF000,
  UDS_DID_NCDFTTADID_END = 0xF00F,
  
  /* 0xF010 – 0xF0FF (VMS) Vehicle Manufacturer Specific */
  
  /* 0xF100 – 0xF17F (IDOPTVMSDID) Identification Option Vehicle Manufacturer Specific Data Identifier */
  UDS_DID_IDOPTVMSDID = 0xF100,
  UDS_DID_IDOPTVMSDID_END = 0xF17F,

  UDS_DID_BSIDID = 0xF180,
  UDS_DID_BOOT_SOFTWARE_IDENTIFICATION = UDS_DID_BSIDID,

  UDS_DID_ASIDID = 0xF181,
  UDS_DID_APPLICATION_SOFTWARE_IDENTIFICATION = UDS_DID_ASIDID,

  UDS_DID_ASDID = 0xF182,
  UDS_DID_APPLICATION_DATA_IDENTIFICATION = UDS_DID_ASDID,

  UDS_DID_BSFDID = 0xF183,
  UDS_DID_BOOT_SOFTWARE_FINGERPRINT = UDS_DID_BSFDID,

  UDS_DID_ASFDID = 0xF184,
  UDS_DID_APPLICATION_SOFTWARE_FINGERPRINT = UDS_DID_ASFDID,

  UDS_DID_ADFDID = 0xF185,
  UDS_DID_APPLICATION_DATA_FINGERPRINT = UDS_DID_ADFDID,

  UDS_DID_ADSDID = 0xF186,
  UDS_DID_ACTIVE_DIAGNOSTIC_SESSION = UDS_DID_ADSDID,

  UDS_DID_VMSPNDID = 0xF187,
  UDS_DID_VEHICLE_MANUFACTURER_SPARE_PART_NUMBER = UDS_DID_VMSPNDID,

  UDS_DID_VMECUSNDID = 0xF188,
  UDS_DID_VEHICLE_MANUFACTURER_ECU_SOFTWARE_NUMBER = UDS_DID_VMECUSNDID,

  UDS_DID_VMECUSVNID = 0xF189,
  UDS_DID_VEHICLE_MANUFACTURER_ECU_SOFTWARE_VERSION_NUMBER = UDS_DID_VMECUSVNID,

  UDS_DID_SSIDID = 0xF18A,
  UDS_DID_SYSTEM_SUPPLIER_IDENTIFIER = UDS_DID_SSIDID,

  UDS_DID_ECUMDDID = 0xF18B,
  UDS_DID_ECU_MANUFACTURING_DATE = UDS_DID_ECUMDDID,

  UDS_DID_ECUSNDID = 0xF18C,
  UDS_DID_ECU_SERIAL_NUMBER = UDS_DID_ECUSNDID,

  UDS_DID_SFUFDID = 0xF18D,
  UDS_DID_SUPPORTED_FUNCTIONAL_UNITS = UDS_DID_SFUFDID,

  UDS_DID_VMKAPNDID = 0xF18E,
  UDS_DID_VEHICLE_MANUFACTURER_KIT_ASSEMBLY_PART_NUMBER = UDS_DID_VMKAPNDID,

  /* 0xF18F (ISOSAERESRVD) */

  UDS_DID_VINDID = 0xF190,
  UDS_DID_VIN = UDS_DID_VINDID,

  UDS_DID_VMECHNDID = 0xF191,
  UDS_DID_VEHICLE_MANUFACTURER_ECU_HARDWARE_NUMBER = UDS_DID_VMECHNDID,

  UDS_DID_SSECUHWNDID = 0xF192,
  UDS_DID_SYSTEM_SUPPLIER_ECU_HARDWARE_NUMBER = UDS_DID_SSECUHWNDID,

  UDS_DID_SSECUHWVNDID = 0xF193,
  UDS_DID_SYSTEM_SUPPLIER_ECU_HARDWARE_VERSION_NUMBER = UDS_DID_SSECUHWVNDID,

  UDS_DID_SSECUSWNDID = 0xF194,
  UDS_DID_SYSTEM_SUPPLIER_ECU_SOFTWARE_NUMBER = UDS_DID_SSECUSWNDID,

  UDS_DID_SSECUSWVNDID = 0xF195,
  UDS_DID_SYSTEM_SUPPLIER_ECU_SOFTWARE_VERSION_NUMBER = UDS_DID_SSECUSWVNDID,

  UDS_DID_EROTANDID = 0xF196,
  UDS_DID_EXHAUST_REGULATION_OR_TYPE_APPROVAL_NUMBER = UDS_DID_EROTANDID,

  UDS_DID_SNOETDID = 0xF197,
  UDS_DID_SYSTEM_NAME_OR_ENGINE_TYPE = UDS_DID_SNOETDID,

  UDS_DID_RSCOTSNDID = 0xF198,
  UDS_DID_REPAIR_SHOP_CODE_OR_TESTER_SERIAL_NUMBER = UDS_DID_RSCOTSNDID,

  UDS_DID_PDDID = 0xF199,
  UDS_DID_PROGRAMMING_DATE = UDS_DID_PDDID,

  UDS_DID_CRSCOCESNDID = 0xF19A,
  UDS_DID_CALIBRATION_REPAIR_SHOP_CODE_OR_CALIBRATION_EQUIPMENT_SERIAL_NUMBER = UDS_DID_CRSCOCESNDID,

  UDS_DID_CDDID = 0xF19B,
  UDS_DID_CALIBRATION_DATE = UDS_DID_CDDID,

  UDS_DID_CESWNDID = 0xF19C,
  UDS_DID_CALIBRATION_EQUIPMENT_SOFTWARE_NUMBER = UDS_DID_CESWNDID,

  UDS_DID_EIDDID = 0xF19D,
  UDS_DID_ECU_INSTALLATION_DATE = UDS_DID_EIDDID,

  UDS_DID_ODXFDID = 0xF19E,
  UDS_DID_ODX_FILE = UDS_DID_ODXFDID,

  UDS_DID_EDID = 0xF19F,
  UDS_DID_ENTITY = UDS_DID_EDID,

  /* 0xF1A0 – 0xF1EF (IDOPTVMS) Identification Option Vehicle Manufacturer Specific */

  /* 0xF1F0 – 0xF1FF (IDOPTSSS) Identification Option System Supplier Specific */

  /* 0xF200 – 0xF2FF (PDID) Periodic Data Identifier */

  /* 0xF300 – 0xF3FF (DDDDI) Dynamically Defined Data Identifier */

  /* 0xF400 – 0xF4FF (OBDDID) OBD Data Identifier */

  /* 0xF500 – 0xF5FF (OBDDID) OBD Data Identifier */

  /* 0xF600 – 0xF6FF (OBDMDID) OBD Monitor Data Identifier */

  /* 0xF700 – 0xF7FF (OBDMDID) OBD Monitor Data Identifier */

  /* 0xF800 – 0xF8FF (OBDINFTYPDID) OBD Info Type Data Identifier */

  /* 0xF900 – 0xF9FF (TACHODID) Tachograph Data Identifier */

  /* 0xFA00 – 0xFA0F (ADDID) Airbag Deployment Data Identifier */

  UDS_DID_NOEDRD = 0xFA10,
  UDS_DID_NUMBER_OF_EDR_DEVICES = UDS_DID_NOEDRD,

  UDS_DID_EDRI = 0xFA11,
  UDS_DID_EDR_IDENTIFICATION = UDS_DID_EDRI,

  UDS_DID_EDRDAI = 0xFA12,
  UDS_DID_EDR_DEVICE_ADDRESS_INFORMATION = UDS_DID_EDRDAI,

  UDS_DID_EDRES = 0xFA13,
  UDS_DID_EDR_ENTRY_LATEST = UDS_DID_EDRES,

  UDS_DID_EDRES_END = 0xFA18,
  UDS_DID_EDR_ENTRY_OLDEST = UDS_DID_EDRES_END,

  /* 0xFA19 – 0xFAFF (SSDID) Safety System Data Identifier */

  /* 0xFB00 – 0xFCFF (RFLU) Reserved For Legislative Use */

  /* 0xFD00 – 0xFEFF (SSS) System Supplier Specific */

  UDS_DID_UDS_VERSION = 0xFF00,
  UDS_DID_UDS_VERSION_DATA_IDENTIFIER = UDS_DID_UDS_VERSION,

  /* 0xFF01 – 0xFFFF (ISOSAEReserved) */
} UDS_DID_t;

#ifdef __cplusplus
}
#endif